# 算术运算符
# / 除法运算，结果一定是浮点数类型
print(3 / 5)  # 0.6
print(5 / 5)  # 1.0

# 3 / 5 = 0 ... 3
# // 整除运算，取商数结果（整数部分），而是小数结果四舍五入
print(3 // 5)  # 0

# % 余数运算，取模
print(3 % 5)  # 3

# 复数参与运算
print(10 - (1 + 2j))  # (10 + 0j) - (1 + 2j) = 9 - 2j

# 幂运算
print(3 ** 3)  # 3的3次方，27

# 赋值运算符，由=衍生出的运算符
a = 3
b = a  # 赋值,3
a += b  # 先执行a+b，结果赋值给a
print(a)  # 6

a **= b  # 6^3
print(a)

# 比较运算符，== != > < >= <=
print(3 == '3')  # 判断类型和数字大小

# 逻辑运算，and（与）  or（或）  not（非）
print(3 > 2 and 1 < 5)  # true
print(bool(1))  # True
print(bool(2))  # True
# 若两个操作数的布尔值均为True，则返回右操作数，运算结果的布尔值为True
print(1 and 2)  # 2

# 若两个操作数的布尔值均为False，则会返回左操作数，运算结果的布尔值为False
print('' and 0)  # 空字符串

# 若两个操作数的布尔值有一个为False，则会返回布尔值为False的操作数
print(1 and 0)  # 0

print(1 < 3 or 4 > 5) # True
# 若左操作数的布尔值为True，则返回左操作数，否则返回右操作数
print(3 or 0)  # 3
print(0 or 3)  # 3

print(not (3 < 5))  # False
# 若操作数x的布尔值为True，则结果为False
print(not 3) # False

# 成员运算符，判断某个序列数据是否存在目标元素
print('3' in '345')  # True
print('6' in '345')  # False
print(3 in [3, 4, 5])  # True